package com.fulihui.information.dal.dataobj;

import java.util.ArrayList;
import java.util.List;

public class InfoCategoryStatisticsExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InfoCategoryStatisticsExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCategoryCodeIsNull() {
            addCriterion("category_code is null");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeIsNotNull() {
            addCriterion("category_code is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeEqualTo(String value) {
            addCriterion("category_code =", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeNotEqualTo(String value) {
            addCriterion("category_code <>", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeGreaterThan(String value) {
            addCriterion("category_code >", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeGreaterThanOrEqualTo(String value) {
            addCriterion("category_code >=", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeLessThan(String value) {
            addCriterion("category_code <", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeLessThanOrEqualTo(String value) {
            addCriterion("category_code <=", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeLike(String value) {
            addCriterion("category_code like", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeNotLike(String value) {
            addCriterion("category_code not like", value, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeIn(List<String> values) {
            addCriterion("category_code in", values, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeNotIn(List<String> values) {
            addCriterion("category_code not in", values, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeBetween(String value1, String value2) {
            addCriterion("category_code between", value1, value2, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andCategoryCodeNotBetween(String value1, String value2) {
            addCriterion("category_code not between", value1, value2, "categoryCode");
            return (Criteria) this;
        }

        public Criteria andDateIntervalIsNull() {
            addCriterion("date_interval is null");
            return (Criteria) this;
        }

        public Criteria andDateIntervalIsNotNull() {
            addCriterion("date_interval is not null");
            return (Criteria) this;
        }

        public Criteria andDateIntervalEqualTo(String value) {
            addCriterion("date_interval =", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalNotEqualTo(String value) {
            addCriterion("date_interval <>", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalGreaterThan(String value) {
            addCriterion("date_interval >", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalGreaterThanOrEqualTo(String value) {
            addCriterion("date_interval >=", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalLessThan(String value) {
            addCriterion("date_interval <", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalLessThanOrEqualTo(String value) {
            addCriterion("date_interval <=", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalLike(String value) {
            addCriterion("date_interval like", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalNotLike(String value) {
            addCriterion("date_interval not like", value, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalIn(List<String> values) {
            addCriterion("date_interval in", values, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalNotIn(List<String> values) {
            addCriterion("date_interval not in", values, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalBetween(String value1, String value2) {
            addCriterion("date_interval between", value1, value2, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andDateIntervalNotBetween(String value1, String value2) {
            addCriterion("date_interval not between", value1, value2, "dateInterval");
            return (Criteria) this;
        }

        public Criteria andReadTimesIsNull() {
            addCriterion("read_times is null");
            return (Criteria) this;
        }

        public Criteria andReadTimesIsNotNull() {
            addCriterion("read_times is not null");
            return (Criteria) this;
        }

        public Criteria andReadTimesEqualTo(Integer value) {
            addCriterion("read_times =", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesNotEqualTo(Integer value) {
            addCriterion("read_times <>", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesGreaterThan(Integer value) {
            addCriterion("read_times >", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("read_times >=", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesLessThan(Integer value) {
            addCriterion("read_times <", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesLessThanOrEqualTo(Integer value) {
            addCriterion("read_times <=", value, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesIn(List<Integer> values) {
            addCriterion("read_times in", values, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesNotIn(List<Integer> values) {
            addCriterion("read_times not in", values, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesBetween(Integer value1, Integer value2) {
            addCriterion("read_times between", value1, value2, "readTimes");
            return (Criteria) this;
        }

        public Criteria andReadTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("read_times not between", value1, value2, "readTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesIsNull() {
            addCriterion("shared_times is null");
            return (Criteria) this;
        }

        public Criteria andSharedTimesIsNotNull() {
            addCriterion("shared_times is not null");
            return (Criteria) this;
        }

        public Criteria andSharedTimesEqualTo(Integer value) {
            addCriterion("shared_times =", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesNotEqualTo(Integer value) {
            addCriterion("shared_times <>", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesGreaterThan(Integer value) {
            addCriterion("shared_times >", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("shared_times >=", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesLessThan(Integer value) {
            addCriterion("shared_times <", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesLessThanOrEqualTo(Integer value) {
            addCriterion("shared_times <=", value, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesIn(List<Integer> values) {
            addCriterion("shared_times in", values, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesNotIn(List<Integer> values) {
            addCriterion("shared_times not in", values, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesBetween(Integer value1, Integer value2) {
            addCriterion("shared_times between", value1, value2, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andSharedTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("shared_times not between", value1, value2, "sharedTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesIsNull() {
            addCriterion("comment_times is null");
            return (Criteria) this;
        }

        public Criteria andCommentTimesIsNotNull() {
            addCriterion("comment_times is not null");
            return (Criteria) this;
        }

        public Criteria andCommentTimesEqualTo(Integer value) {
            addCriterion("comment_times =", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesNotEqualTo(Integer value) {
            addCriterion("comment_times <>", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesGreaterThan(Integer value) {
            addCriterion("comment_times >", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("comment_times >=", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesLessThan(Integer value) {
            addCriterion("comment_times <", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesLessThanOrEqualTo(Integer value) {
            addCriterion("comment_times <=", value, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesIn(List<Integer> values) {
            addCriterion("comment_times in", values, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesNotIn(List<Integer> values) {
            addCriterion("comment_times not in", values, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesBetween(Integer value1, Integer value2) {
            addCriterion("comment_times between", value1, value2, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andCommentTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("comment_times not between", value1, value2, "commentTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesIsNull() {
            addCriterion("star_times is null");
            return (Criteria) this;
        }

        public Criteria andStarTimesIsNotNull() {
            addCriterion("star_times is not null");
            return (Criteria) this;
        }

        public Criteria andStarTimesEqualTo(Integer value) {
            addCriterion("star_times =", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesNotEqualTo(Integer value) {
            addCriterion("star_times <>", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesGreaterThan(Integer value) {
            addCriterion("star_times >", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("star_times >=", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesLessThan(Integer value) {
            addCriterion("star_times <", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesLessThanOrEqualTo(Integer value) {
            addCriterion("star_times <=", value, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesIn(List<Integer> values) {
            addCriterion("star_times in", values, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesNotIn(List<Integer> values) {
            addCriterion("star_times not in", values, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesBetween(Integer value1, Integer value2) {
            addCriterion("star_times between", value1, value2, "starTimes");
            return (Criteria) this;
        }

        public Criteria andStarTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("star_times not between", value1, value2, "starTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesIsNull() {
            addCriterion("voteup_times is null");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesIsNotNull() {
            addCriterion("voteup_times is not null");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesEqualTo(Integer value) {
            addCriterion("voteup_times =", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesNotEqualTo(Integer value) {
            addCriterion("voteup_times <>", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesGreaterThan(Integer value) {
            addCriterion("voteup_times >", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("voteup_times >=", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesLessThan(Integer value) {
            addCriterion("voteup_times <", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesLessThanOrEqualTo(Integer value) {
            addCriterion("voteup_times <=", value, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesIn(List<Integer> values) {
            addCriterion("voteup_times in", values, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesNotIn(List<Integer> values) {
            addCriterion("voteup_times not in", values, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesBetween(Integer value1, Integer value2) {
            addCriterion("voteup_times between", value1, value2, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVoteupTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("voteup_times not between", value1, value2, "voteupTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesIsNull() {
            addCriterion("votedown_times is null");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesIsNotNull() {
            addCriterion("votedown_times is not null");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesEqualTo(Integer value) {
            addCriterion("votedown_times =", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesNotEqualTo(Integer value) {
            addCriterion("votedown_times <>", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesGreaterThan(Integer value) {
            addCriterion("votedown_times >", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("votedown_times >=", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesLessThan(Integer value) {
            addCriterion("votedown_times <", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesLessThanOrEqualTo(Integer value) {
            addCriterion("votedown_times <=", value, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesIn(List<Integer> values) {
            addCriterion("votedown_times in", values, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesNotIn(List<Integer> values) {
            addCriterion("votedown_times not in", values, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesBetween(Integer value1, Integer value2) {
            addCriterion("votedown_times between", value1, value2, "votedownTimes");
            return (Criteria) this;
        }

        public Criteria andVotedownTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("votedown_times not between", value1, value2, "votedownTimes");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}